@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-weight: 400;
  src: url('./fonts/FiraSans-Regular.ttf') format('truetype');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}

@font-face {
  font-family: 'Fira Sans';
  font-style: italic;
  font-weight: 400;
  src: url('./fonts/FiraSans-Italic.ttf') format('truetype');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}

@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-weight: 300;
  src: url('./fonts/FiraSans-Light.ttf') format('truetype');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}

@font-face {
  font-family: 'Fira Sans';
  font-style: italic;
  font-weight: 300;
  src: url('./fonts/FiraSans-LightItalic.ttf') format('truetype');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}

@font-face {
  font-family: 'Fira Sans';
  font-style: normal;
  font-weight: 500;
  src: url('./fonts/FiraSans-Medium.ttf') format('truetype');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}

@font-face {
  font-family: 'Fira Sans';
  font-style: italic;
  font-weight: 500;
  src: url('./fonts/FiraSans-MediumItalic.ttf') format('truetype');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}

@font-face {
  font-family: 'Fira Sans';
  font-style: bold;
  font-weight: 700;
  src: url('./fonts/FiraSans-Bold.ttf') format('truetype');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}

@font-face {
  font-family: 'Fira Mono';
  font-style: normal;
  font-weight: 400;
  src: url('./fonts/FiraMono-Regular.ttf') format('truetype');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}

@font-face {
  font-family: 'Fira Mono';
  font-style: bold;
  font-weight: 700;
  src: url('./fonts/FiraMono-Bold.ttf') format('truetype');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}

::selection {
  background: rgba(38, 145, 173, .8);
  color: #FAFCFC;
}

img::selection {
  background: transparent;
}

html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
}
*, *:before, *:after {
  box-sizing: inherit;
}

html, body {
  -webkit-tap-highlight-color: rgb(205,49,114);
  -webkit-font-smoothing: antialiased;
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}

body {
  font-family: Fira Sans, Arial, sans-serif !important;
  font-size: 12px;
  font-weight: 400;
  color: #d1d1d1;
}

iframe {
  outline: none;
  border: none;
  padding: 0;
  margin: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
}

.fade-in {
  opacity: 0.0;
  transition: opacity .25s ease-in-out;
  -moz-transition: opacity .25s ease-in-out;
  -webkit-transition: opacity .25s ease-in-out;
}

.fade-out {
  opacity: 1.0;
  transition: opacity .25s ease-in-out;
  -moz-transition: opacity .25s ease-in-out;
  -webkit-transition: opacity .25s ease-in-out;
}

.frame {
  -webkit-user-select: none;
  -webkit-app-region: drag;
}

button {
  -webkit-app-region: no-drag;
  cursor: pointer;
  text-transform: uppercase;
}

button[disabled] {
  cursor: not-allowed !important;
}

/* We have a ton of elements with text content that shouldn't be selectable
 * TODO: Move into the ui-common module?
 */
.no-select {
  -webkit-user-select: none !important;
  user-select: none !important;
}

/* TODO(legacy): unify this styles
 * for some reason we were hiding the tip of the Popover library
 * and placing the popover body in unexpected places. This was
 * breaking the normal usage of the library and took me hours to figure
 *
 * In an attempt to keep the old code as-is and at the same time fix
 * the future usage of the Popover library, I'm prefixing the affected
 * code with a specific class (i.e. `.three-dot-popover`)
 */
.three-dot-popover .Popover-tip,
.publish-popover .Popover-tip {
  display: none;
}

.publish-popover .Popover-body,
.three-dot-popover .Popover-body {
  position: absolute;
  left: -12px;
  top: -28px;
}

/* General Popover styles */

/* Don't animate the popover */
.Popover {
  transform : translateY(0) !important;
  z-index: 10;
  transition-duration: 0;
  transition-property: transform !important;
}

/* Don't animate the tip */
.Popover-tip {
  transition: -webkit-transform 0ms ease-in!important;
}

/* Basic form resets */
input,
label,
select,
button,
textarea:not(.inputarea) { /* Must not include .inputarea so as not to conflict with monaco-editor */
	margin:0;
	border:0;
	padding:0;
	display:inline-block;
	vertical-align:middle;
	white-space:normal;
	background:none;
	line-height:1;
	font-size:13px;
}

input:focus, button:focus {
	outline:0;
}

input::-webkit-input-placeholder {
  color: rgba(254,254,254,.37);
}

.popover-input::-webkit-input-placeholder {
  color: rgb(242, 148, 29);
}

.popover-input:focus::-webkit-input-placeholder {
  color: transparent;
}

.normal-input::-webkit-input-placeholder {
  color: rgba(254,254,254,.37) !important;
}

.layout-box {
  position: relative;
  top: 0;
  left: 0;
  margin: 0;
  padding: 0;
  border: none;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

/* TODO: hook up this rotation for library asset chevrons later
.collapse-chevy {
  margin-right: 4px;
  transform: rotate(-90deg);
  transition: transform 125ms ease-out;
  position: absolute;
  width: 9px;
  height: 9px;
  left: 0;
}

.collapse-chevy.open {
  transform: rotate(0);
}
*/

body {
  background-color: #2D373A;
}

.load-bar {
    height: 10px;
    width: 150px;
    margin-top: 20px;
    margin: 20px auto 0;
    border-radius: 10px;
    background-image: linear-gradient(-45deg, #04B6CB 25%, rgba(255, 154, 26, 0) 25%, rgba(255, 154, 26, 0) 50%, #04B6CB 50%, #04B6CB 75%, rgba(255, 154, 26, 0) 75%);
    background-color: #0098AA;
    background-size: 50px 50px;
    border: 1px solid #04B6CB;
    border-bottom-color: #0098AA;
    animation: move 2s linear infinite;
}

@keyframes move {
  0%   { background-position: 0 0; }
  100% { background-position: 50px 50px; }
}

.toast {
  transform: translateY(0);
}

.toast-enter {
  opacity: 0.01;
  transform: translateY(-100px);
}

.toast-enter.toast-enter-active {
  opacity: 1;
  top: 14px;
  transform: translateY(0);
  transition: transform 400ms cubic-bezier(.08,.53,.39,1.03), opacity 220ms linear;
}

.toast-exit {
  opacity: 1;
}

.toast-exit.toast-exit-active {
  opacity: 0.01;
  transform: translateY(-100px);
  transition: all 250ms ease-in;
}

/* Glass Control Handle Cursors */

.topL {
  cursor: nwse-resize;
}

.topR {
  cursor: nesw-resize;
}

.bottomL {
  cursor: nesw-resize;
}

.bottomR {
  cursor: nwse-resize;
}

.middleR, .middleL {
  cursor: ew-resize;
}

.topM, .bottomM {
  cursor: ns-resize;
}

.topL .rotate-cursor {
  right: 5px;
  bottom: 5px;
  cursor: -webkit-image-set(
    url('../assets/cursors/rotation-cursor-tl.png') 1x
  ) 16 16, auto;
}

.topR .rotate-cursor {
  left: 5px;
  bottom: 5px;
  cursor: -webkit-image-set(
    url('../assets/cursors/rotation-cursor-tr.png') 1x
  ) 0 16, auto;
}

.bottomL .rotate-cursor {
  right: 5px;
  top: 5px;
  cursor: -webkit-image-set(
    url('../assets/cursors/rotation-cursor-bl.png') 1x
  ) 16 0, auto;
}

.bottomR .rotate-cursor {
  left: 5px;
  top: 5px;
  cursor: -webkit-image-set(
    url('../assets/cursors/rotation-cursor-br.png') 1x
  ) 0 0, auto;
}

.topM .rotate-cursor {
  right: 5px;
  bottom: 5px;
  cursor: -webkit-image-set(
    url('../assets/cursors/rotation-cursor-t.png') 1x
  ) 11 11, auto;
}

.middleR .rotate-cursor {
  left: 5px;
  bottom: 5px;
  cursor: -webkit-image-set(
    url('../assets/cursors/rotation-cursor-r.png') 1x
  ) 11 11, auto;
}

.bottomM .rotate-cursor {
  right: 5px;
  top: 5px;
  cursor: -webkit-image-set(
    url('../assets/cursors/rotation-cursor-b.png') 1x
  ) 11 11, auto;
}

.middleL .rotate-cursor {
  left: 5px;
  top: 5px;
  cursor: -webkit-image-set(
    url('../assets/cursors/rotation-cursor-l.png') 1x
  ) 11 11, auto;
}

/* End Glass Control Handle Cursors */

.file-drop {
  position: absolute;
  min-height: 300px;
  height: 100%;
  width: 100%;
}

.file-drop > .file-drop-target {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  border-radius: 2px;
  opacity: 0;
  font-size: 30px;
  background-color: rgba(205,49,114, .16);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  align-content: center;
  text-align: center;
  transform: scale(1.3);
  transition: transform 223ms ease-out;
}

.file-drop > .file-drop-target.file-drop-dragging-over-frame {
  border: none;
  box-shadow: none;
  z-index: 50;
  opacity: 1.0;
  color: white;

}

.file-drop > .file-drop-target.file-drop-dragging-over-target {
  background-color: rgba(205,49,114, .28);
  transform: scale(1.1);
}

.Droppable {
    height: 100%;
}

/* Something I did during multi-component broke and I needed to add this
 * back to get something reasonably close to the old draggable; #FIXME?
 */
.library-draggable {
  display: inline-block;
  width: 90%;
}

.react-draggable-dragged {
  cursor: -webkit-grab;
}

.react-draggable-dragging {
  cursor: -webkit-grabbing;
}

input[type=file]::-webkit-file-upload-button { /* chromes and blink button */
    cursor: pointer;
}

@keyframes rotation {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(359deg);
  }
}

.button-css-transform {
  transition: transform 200ms ease;
  transform: scale(1);
}

.button-css-transform:active {
  transform: scale(0.9);
}
